import axios from "axios";
import { MessageBox } from "element-ui";
import store from "@/store";


let baseURL = "http://47.104.167.34:9100/prod-api"

// 弹窗标识符
let flag = true

//创建一个axios实例
const service = axios.create({
    // 配置接口前缀
    baseURL: process.env.VUE_APP_BASE_API,
    // 设置超时时间
    timeout: 5000
})

// 请求拦截器
service.interceptors.request.use((config) => {
    // token
    let token = "Bearer " + localStorage.getItem("token")
    if(config.url !="/login" && config.url != "/captchaImage"){
         config.headers ={
     "Content-Type" : "application/json",
     "Authorization":token
    }
    }
   

    return config
},(err) => {
    return Promise.reject(err)
})

//响应拦截器
service.interceptors.response.use((res) => {
    console.log(res)
    if (res.status == 200 && res.data.code == 200){
        flag = true
        return res.data
    }else if(res.data.code == 401){
        // 控制弹出一个弹窗
        if(flag){
             MessageBox({
                title:"提示",
                message:"您的登录已过期，请重新登陆"
            }).then(() => {
                //点确定 送去登录
                store.dispatch("outlogin")
            })
            flag = false
        }
           

            return res.data
            // 如果响应类型是二进制文件
    }else if(res.request.responseType == "blob"){
        return res.data
    }else{
        return Promise.reject(res.data)
    }
    
})


export default service